Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

312
Vistas
Mangosta | rellenar en post middleware para "guardar"

Considere los siguientes parentSchema y childSchema :

 const parentSchema = new mongoose.Schema({ name: String, children: [{ type: mongoose.Schema.Types.ObjectId, ref: "Child" }], }); const childSchema = new mongoose.Schema({ name: String, parent: { type: mongoose.Schema.Types.ObjectId, ref: "Parent" }, });

¿Cómo accedo al nombre del padre dentro de un middleware posterior al childSchema? Estoy probando el código a continuación, pero al parent se le asigna el ObjectId en lugar del modelo principal real.

 childSchema.post("save", async function (child) { const parent = child.populate("parent").parent; });

¿Cuál es la forma correcta de hacer esto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si desea completar algo después de la búsqueda inicial, debe llamar a execPopulate , por ejemplo:

 childSchema.post("save", async function (child) { try { if (!child.populated('parent')) { await child.populate('parent').execPopulate(); } const parent = child.populate("parent").parent; } catch (err) {} });
over 4 years ago · Santiago Trujillo Denunciar

0

Acabo de enterarme de this.model("Model") , así que estoy compartiendo otra solución. Sin embargo, no estoy seguro de cómo se compara con el aceptado:

 childSchema.post("save", async function (child) { try { const parent = await this.model("Parent").findOne({ _id: child.parent }); parent.children.push(child._id); parent.save(); } catch (error) {} });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda